home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 1998-08-11 | 1.6 KB | 46 lines | [ TEXT/ScoM]
l-complement2 type length pattern This function is used to complement existing values in a note-length list with further values to enable the whole list to 'add-up' to a user-defined zone-length. type :note :rest seed (setq len1 (qlength '((8-11) (20-11111) (8-11) (12-111)))) (setq pat (l-tie len1)) => ((1/8) (7/40) (1/20 1/20 1/20) (7/40) (5/24) (1/12 1/12)) (l-complement2 :note '1/4 pat) => ((1/8 1/8) (1/8 7/40 1/5) (1/20 1/20 1/20 1/20 1/20) (1/5 7/40 1/8) (1/8 5/24 1/6) (1/12 1/12 1/12)) (l-complement2 :rest '1/4 pat) => ((1/8 -1/8) (-1/8 7/40 -1/5) (-1/20 1/20 1/20 1/20 -1/20) (-1/5 7/40 -1/8) (-1/8 5/24 -1/6) (-1/12 1/12 1/12)) (l-complement2 nil '1/4 pat) => ((1/8 -1/8) (-1/8 7/40 1/5) (-1/20 1/20 1/20 1/20 1/20) (1/5 7/40 -1/8) (1/8 5/24 1/6) (1/12 1/12 1/12)) or... (l-complement2 .23 '1/4 pat) => ((1/8 1/8) (1/8 7/40 1/5) (-1/20 1/20 1/20 1/20 1/20) (1/5 7/40 -1/8) (1/8 5/24 -1/6) (-1/12 1/12 1/12)) (setq len2 (permute-unique (qlength '(20-10100)))) (setq prime (vector-to-list (gen-primes 18))) (l-complement2 :note '1/4 (l-modify .45 nil :note :times (symbol-shuffle prime .32) len2)) => ((13/20 11/20 -1/20 -1/20 -1/20 3/20) (1/10 1/10 -1/20 17/20 -1/20 -1/20 1/20) (1/5 1/20 -1/20 -1/20 7/20 -1/20) (1/4 1/4 -1/20 -1/20 -1/20 3/20 1/5) (1/20 -1/20 13/20 11/20 -1/20 -1/20 1/10) (3/20 -1/20 1/10 -1/20 17/20 -1/20) (1/4 -1/20 1/20 -1/20 -1/20 7/20 1/5) (1/20 -1/20 -1/20 -1/20 1/4 3/20 3/20) (1/10 -1/20 -1/20 13/20 11/20 -1/20 1/20) (1/5 -1/20 -1/20 1/10 -1/20 17/20 1/5))